1985-BHV-11 S.6.10
Hardware-Umschaltung für den Betrieb von CP/Mbei den Computern TRS80, GENIE I, II und Komtek 1Helmut BernhardtDer Einsatz des Betriebssystems CP/M ist auf TRS80 und kompatiblen Computern nicht ohne weiteres möglich, weil im Adressbereich 0000H bis 3FFFH leider kein RAM vorliegt. CP/M fordert aber, daß nach dem Booten des Betriebssystems, wofür natürlich ab Adresse 0000H ein ROM mit einer Boot-Routine vorliegen muss, durch Software ab Adresse 0000H bis zur Obergrenze des Speicherausbaus RAM eingeschaltet werden kann, weil das BDOS die ersten 256 Bytes nutzt und die Anwenderprogramme ab Adresse 0100H im Speicher liegen. Eine für den TRS80 angepaßte Version, bei der diese unteren Grenzen nach 4000H verschoben sind, fordert natürlich, daß auch die Anwenderprogramme um 16K im Speicher verschoben liegen und dort auch funktionieren. Solche angepassten Anwenderprogramme soll es sogar geben; für die Vielzahl der unter CP/M laufenden Programme entfällt aber die Nutzung unter diesem Not-CP/M. Es gibt mehrere Möglichkeiten (die auch teilweise in verschiedenen Aufrüst-Sätzen für die verschiedenen Rechner realisiert und angeboten werden), wie die Umschaltung auf RAM im Bereich 0000H bis 3FFFH erreicht werden kann. Voraussetzung für alle diese Varianten ist allerdings das Vorhandensein von 64K RAM in Form von 4164-ICs auf dem CPU-Board, wie dies in den letzten Modellen des EACA-GENIE schon der Fall war. Diese Speichererweiterung läßt sich in allen o.a. Computern realisieren. Bei einem unter dem Namen BIGMEM für den TRS80 angebotenen Aufrüstsatz erfolgt die Umschaltung auf CP/M-Fähigkeit durch den Befehl OUT 50H,40H, bei dem der Adressbereich 0000H bis 3FFFH mit dem Bereich C000H bis FFFFH ausgetauscht wird, d.h. ROM, Drucker, Tastatur und Video-RAM liegen am oberen Speicherende, und unterhalb der Adresse 4000H ist ausschließlich RAM vorhanden. Außerdem ist der ROM auch noch ausgeschaltet, sodaß der gesamte Bereich 0000H - F7DFH als RAM verfügbar ist und alle memory mapped I/O-Adressen darüber liegen. Es besteht auch die Möglichkeit, mit dem Befehl OUT 50H,00H nur den ROM gegen RAM auszutauschen und die memory mapped I/O-Adressen an ihrem alten Platz zu belassen. In dieser Konfiguration läßt sich ein ins RAM kopierter ROM-Inhalt beliebig ändern. Nachteilig ist bei BIGMEM, daß ein Zurückschalten aus einer umgeschalteten Konfiguration nur durch RESET* und NMI* möglich ist. Eine andere Variante ist der EG64MBA für den GENIE. Damit lassen sich durch Ausgabe verschiedener Daten an den Port DFH einzelne Bereiche innerhalb der unteren 16K gegen RAM austauschen und durch einen anderen Portbefehl auch wieder rückgängig machen. Die Tabelle 1* zeigt die durch verschiedene Daten an den Port DFH erreichte Funktion. Tabelle 1: Funktionen des EG64MBA
Lesen von Port DFH stellt die ursprüngliche Einstellung wieder her. Adressraum in hexadezimaler Notation L-4 ist der Zusatz-ROM (falls vorhanden) I/O ist nur bei Anschluß von FC-Laufwerken belegt (TRS-80-Druckeradresse, Floppycontroller, Uhr) Ein für Anwender nicht unmaßgeblicher Vorteil gegenüber dem BIGMEM besteht darin, daß der EG64MBA einfach auf den Systembus-Stecker hinten am Gerät gesteckt wird (und den Bus auch wieder herausführt), während beim BIGMEM ein erheblicher Verdrahtungsaufwand notwendig ist, bei dem man auch Fehler machen kann. Beide Aufrüstsätze zeichnen sich dadurch aus, daß dafür angepasste CP/M- Versionen angeboten werden, und daß für die Aufrüstsätze unverschämte Preise gefordert werden. Der Hardware-Freak vermißt auch eine Dokumentation der Schaltung und die Beschriftung der ICs. Für diejenigen, denen die Einsicht in solche Investitionen fehlt und die stattdessen lieber ein bißchen mehr Arbeit mit dem Lötkolben übernehmen, sei im folgenden eine Schaltung beschrieben, die Features beider Schaltungen vereinigt:
Zusätzlich bestehen noch folgende Möglichkeiten:
In der einfachen Variante (nur EG64MBA-Features, nur ICs 1-12, 16) kann das Board beim GENIE wie der originale EG64MBA aufgesteckt werden und funktioniert ohne Änderungen auf dem CPU-Board. In der voll ausgebauten Version muß bei allen Rechnern auf dem CPU-Board anstelle des ursprünglichen Signals 0-16K* das Signal des Boards P0-16K'* verwendet werden. Wenn die dafür nötige Änderung durchgeführt wird, funktioniert der Rechner nur noch mit aufgestecktem Board. Mit einem Umschalter (zwischen den beiden Signalen) kann man sich aus dieser Misere herausmogeln. Um das Signal P0-16K'* vom Board an das CPU-Board zu führen, kann bei GENIE und Komtek 1 ein unbenutzter Pin des Systembus-Steckers verwendet werden. Beim TRS80 ist eine zusätzliche Leitung nötig. Funktionsprinzip des EG64MBA und dieses BoardDer GENIE weist auf dem Systembus-Stecker einen Eingang PHANTOM* auf. Wenn dieser Pin auf low gezogen wird, ist der sonst durch MERQ* freigegebene Adressdecoder IC 24 (74LS139) gesperrt. Das bei diesem IC an Pin 12 ausgegebene Signal 0-16K*, von dem alle anderen Freigabesignale in diesem Adressbereich abgeleitet werden, kann dann nicht mehr low aktiv werden, während die Freigabe des CAS*-Signals (durch das invertierte Signal 0-16K* (=16-64K*) dann auch im Adressbereich 0-16K gewährleistet ist. Der EG64MBA übernimmt die Steuerung des PHANTOM*-Signals in Abhängigkeit von der jeweils auf dem Adressbus liegenden Speicheradresse und vom per OUT DFH,X eingestellten Zustand der Latch-Ausgänge. Als Latch wurde hier (und wahrscheinlich auch im originalen EG64MBA) ein 74LS259 verwendet, über dessen Eingang A, B und C eines von 8 Ein-Bit-Latches selektiert wird, an dessen Ausgang anschießend der Pegel anliegt, der am Eingang DATA angelegen hat, als das letzte mal der Eingang E* low wurde. Über einen low aktiven Impuls am Eingang CLEAR lassen sich alle 8 Latches auf low setzen. An E* wurde das low aktive Freigabesignal OUT DFH* gelegt, während an CLEAR ein aus RESET*, IN DFH* und einem vom Zustand des Ausgangs D7 gesteuertem NMI* abgeleitetem Signal gelegt ist. Die Selektion des jeweiligen Latches wird durch Anlegen der Datenleitungen D0, D1 und D2 an die Eingänge A, B und C erreicht, während D3 an DATA gelegt den Zustand des durch E* freigegebenen Latch-Ausgangs bestimmt. So läßt sich durch Ausgabe des Datenwortes, bei dem nur das untere Nibble signifikant ist, an den Port DFH ein durch die Pegel von D0 bis D2 adressiertes Latch mit dem Zustand von D3 laden. Durch Lesen des Ports DFH, RESET* oder einen nicht per OUT (DFH),0FH gesperrten NMI* können alle Ausgänge auf low gesetzt werden. Diese Ausgänge werden mit den jeweiligen high-aktiven Speicherbereichs- Freigabesignalen und bei den beiden ROM-Bereichen zusätzlich noch jeweils einmal mit RD* oder WR* NAND- verknüpft. Sie ergeben dann am Ausgang des jeweiligen NAND-Gatters ein low-aktives Signal, wenn eine in diesem Bereich liegende Speicheradresse auf dem Bus liegt, wenn der steuernde Latch-Ausgang high gesetzt ist und bei den ROM-Bereichen das Signal RD* bzw. WR* nicht aktiv ist. Über AND-Verknüpfung aller NAND-Ausgänge wird das Signal PHANTOM* erhalten, das immer dann low wird, wenn ein NAND-Ausgang low wird. Die zusätzliche BIGMEM-Funktion dieses Boards wird durch Invertieren der Adressen A14 und A15 zu A14' und A15' und der Herleitung eines 0-16K'*-Signals daraus erhalten. Ob die Adressen invertiert werden oder nicht, wird durch den Ausgang eines Flip Flop gesteuert, dessen Zustand wiederum durch die decodierten Portsignale IN DEH*, OUT DEH*, RESET* und NMI* bestimmt wird. Durch RESET*, NMI* und IN DEH wird das Flip Flop so eingestellt, daß die Adressen über die XOR-Gatter nicht invertiert werden. OUT DEH* kippt das Flip Flop um, so daß die Adressen invertiert werden. Um den beim TRS80 und Komtek 1 gegebenen Voraussetzungen (kein PHANTOM*-Eingang auf dem Bus) Rechnung zu tragen, wurden nun auch beim GENIE nicht die Signale A14' und A15' an den Adressdecoder geführt, der das Signal 0-16K* herleitet. Es wurde auf dem Board ein Signal 0-16K'* aus A14', A15' und MREQ* hergeleitet und mit dem Signal PHANTOM* verknüpft. Dieses dabei erhaltene Signal P0-16K'* muß nun auf dem CPU-Board anstelle des urspünglichen Signals 0-16K* verwendet werden. Auswahl der Funktionen des Boards über Drahtbrücken und JumperGrundversion, nur EG64MBA-Funktionen:
Erweiterte Version, EG64MBA- und BIGMEM-Funktionen
Allgemeine Drahtbrücken und Jumper für alle RechnerZwischen den unteren beiden IC-Reihen müssen folgende Punkte verbunden werden:
Zwischen IC 1 und IC 2 kann durch Wahl der Verbindung A-C oder B-C die Einteilung der Größe der umschaltbaren Bereiche des Sonder-ROMs und des Drucker/Floppy-Bereichs eingestellt werden:
Die Variante B-C hat bei GENIE und Komtek nur dann Sinn, wenn der Sonder-ROM nachträglich voll decodiert wurde und beim Komtek die Druckerschnittstelle (8255 auf den Adressen 36X0H - 36X3H) geändert wurde. Anstelle einer festen Einstellung durch Jumper kann auch ein Umschalter eingesetzt werden. Bei GENIE und Komtek werden außerdem noch die Verbindungen F-F', G-G', S-O, Q-R, P-P' hergestellt; die Punkte D und E werden nicht miteinander verbunden. Änderungen für den Anschluß an den TRS80
Berücksichtigung bestimmter SystemkomponentenBei Vorhandensein eines Original-Expansion-Interface bei TRS80 und GENIE (EG 3014) müssen (in der voll ausgebauten Version dieses Switchboards) zum Expasion- Interface die Signale A14' und A15' anstelle von A14 und A15 geführt werden. Das Gleiche gilt auch für GENIE-Floppy-Laufwerke, die über den 50poligen Systembus angeschlossen sind (Controller im Laufwerksgehäuse). Außerdem hat das Signal PHANTOM* bei der Adreßdecodierung des Drucker/Floppy- Bereichs bei diesen Interfaces keinen Einfluß. Um auch hier ein Ausblenden des I/O-Bereichs 37E0h-37FFH zu ermöglichen, müssen anstelle der Signale MREQ* beim GENIE bzw. MWR* und MRD* beim TRS80 die mit D7 (Pin 9 des 74LS259) OR-verknüpften Signale an das Expansion-Interface bzw. den Floppy-Controller im Laufwerksgehäuse weitergeleitet werden. Dafür können die noch freien OR-Gatter in IC 16, 74LS32, Pins 4, 5 und 6 sowie Pins 10, 9 und 8 verwendet werden. Die Änderung muß über freie Verdrahtung auf der Lötseite erfolgen. Bei Verwendung eines EXP1-Interface von RB-Elektronik in allen 3 Rechnern oder beim Komtek-Floppy-Interface (dessen RAMs wegen der 4164-RAMs auf dem CPU-Board nicht bestückt sein dürfen) sind keine zusätzlichen Maßnahmen erforderlich. Änderungen auf dem CPU-BoardUm im Bedarfsfall auch ohne dieses Board arbeiten zu können, ist es sinnvoll, zwischen den Signalen 0-16K* vom CPU-Board und P0-16K'* auf diesem Board umschalten zu können. Dafür wird an den Mittelanschluß eines Umschalters die abgetrennte Leitung gelegt, an die vorher das Signal 0-16K* gelangte, während an die beiden äußeren Anschlüsse die Signale 0-16K* und P0-16K'* gelegt werden. Beim GENIE liegt 0-16K* an Pin 12 von Z 25 (74LS139) und beim Komtek 1 an Pin 4 von IC 53 (74LS139). Der TRS80 kommt dagegen ohne ein Signal 0-16K* aus. Erst bei der Umrüstung auf 64K RAM auf dem CPU-Board wird ein solches Signal erzeugt. Damit TRS80-Anwender dieses Board auch nutzen können, wird zum Schluß noch kurz der Umbau auf 64K auf dem CPU-Board beschrieben. Umrüsten des TRS80 auf 64K RAM auf dem CPU-Board
Belegung der 30poligen Anschlußleiste
Stückliste1 Platine1 50-(bei TRS80 40-) poliger Platinenrandstecker als Apple-Slot im Handel 1 Gegenstück zum Apple-Slot (beidseitig zu ätzen) 1 10µ/16V Elco 2 µ1 Keramik Kondensatoren 1 74LS159 1 74LS139 1 74LS86 1 74LS32 1 74LS11 2 74LS10 2 74LS08 1 73LS02 3 74LS00 |